package au.edu.jcu.it.numberguess;

import java.util.ArrayList;
import java.util.List;

public class CardSamples {
	protected List<Card> cardSamples;

	public CardSamples() {
		cardSamples = new ArrayList<Card>();
	}

	/** create list of numbers based on range of numbers in setting **/
	/* create binary numbers */
	public List<Integer> binaryCreate(Integer integer) {
		List<Integer> listInteger = new ArrayList<Integer>();
		for (int j = 0; j < integer; j++)
			for (int i = 0; i <= integer; i++) {
				if ((i == Math.pow(2, j)))
					listInteger.add(i);
			}
		return listInteger;
	}

	/* create fibonaci numbers */
	public List<Integer> fibonaciCreate(Integer integer) {
		List<Integer> listInteger = new ArrayList<Integer>();
		listInteger.add(0);
		listInteger.add(1);
		for (int j = 0; j <= integer; j++) {
			if (j == (listInteger.get(listInteger.size() - 1) + listInteger
					.get(listInteger.size() - 2)))
				listInteger.add(j);

		}
		listInteger.remove(0);
		listInteger.remove(1);
		return listInteger;
	}

	/* create fibonaci numbers */
	public boolean checkPrime(Integer integer) {
		int i;
		for (i = 2; i < integer; i++) {
			if (integer % i == 0) {
				break;
			}
		}
		if ((i == integer))
			return true;
		return false;
	}

	public List<Integer> primeCreate(Integer integer) {
		List<Integer> list = new ArrayList<Integer>();
		list.add(1);
		for (int i = 1; i <= integer; i++) {
			if (checkPrime(i) == true)
				list.add(i);
		}
		return list;
	}

	public void clear() {
		cardSamples.clear();
	}

	public Card get(int j) {

		return cardSamples.get(j);
	}

	public void add(Card card) {
		cardSamples.add(card);

	}

	public int size() {
		return cardSamples.size();

	}

}
